package com.erp.mclass;

import com.erp.bean.Twostringbean;
import com.erp.Interface.Observer;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


/**
 * Created by Administrator on 2016/11/11/011.
 * 作者：刘洋
 * 用于回调观察者的类
 */
public class CommonObservable<T extends Observer> extends Observable<T> {
    /* 实现抽象方法通知观察者， 第一个参数为观察者名字，第二个参数flag标志表示如果没有找到观察者是否通知其他所有观察者（true是false否），第三个为需要传递的参数 */
    String test="";
    @Override
    public void notifyObserver(String obserName, boolean flag, String s, int select, ArrayList<Twostringbean> searchParams, Twostringbean time) {
        // TODO Auto-generated method stub
        if(obserName != null && !(obserName instanceof String)) return;
        for(HashMap<String, T> map : obserList){
            if(map.containsKey(obserName)) {
                ((T)map.get(obserName)).update(s,select,searchParams,time);
                test=s;
                break;
            }
        }
        if(flag) {
            for(HashMap<String, T> map : obserList){
                Iterator<Map.Entry<String, T>> iterator = map.entrySet().iterator();
                ((T)iterator.next().getValue()).update(s,select,searchParams,time);
            }
        }
    }

    public String getdata(){
        return test;
    }
    @Override
    public void notifyObservers() {
        // TODO Auto-generated method stub
        // notifyObserver(null, false, null, null);
    }
}
